/**
 * WanlShop状态管理器
 * 
 * @ author 北京麦盟科技 <wanlshop@i36k.com> 
 * < 程序仅用作FastAdmin付费插件API测试使用，非FastAdmin购买授权，未经版权所有权人书面许可，不能用于商业用途！>
 * @ link http://www.wanlshop.com
 * @ 2019年9月10日12:52:20
 * @ 2020年9月29日19:00:46
 * @ version 1.0.0
 **/
import Vue from 'vue';
import Vuex	from 'vuex';
import config from './modules/config.js'
Vue.use(Vuex);
import {init} from "@/api/common.js"
// 模块
// import IM from './modules/IM.js';

const store = new Vuex.Store({
	modules: {
		config
	},
	state: {
		isLogin: false,
		isSDKReady: false , // TIM SDK 是否 ready
		group_id:'',			// 聊天对象id
		conversationList:[], // 会话列表
		currentMessageList:[], // 消息列表
		ImgUrl:'',
	},
	mutations: {
	//更新登录状态
	toggleIsLogin(state, isLogin) {
		state.isLogin = typeof isLogin === 'undefined' ? !state.isLogin : isLogin
	},
	//更新TIMSDK状态
	toggleIsSDKReady(state, isSDKReady) {
		state.isSDKReady = typeof isSDKReady === 'undefined' ? !state.isSDKReady : isSDKReady
	},
	//退出登录重置状态
	reset(state) {
		state.isLogin = false
		state.isSDKReady = false
	},
	//选择好友聊天--创建会话/拼接会话id
	createConversationActive(state,group_id){
		state.group_id = group_id
		state.currentMessageList = []
	},
	//更新会话列表
	updateConversationList(state,newConversationList){
		console.log('conversationList',newConversationList);
		state.conversationList = newConversationList;
	},
	/**
	 * 将消息插入当前会话列表
	 * 调用时机：收/发消息事件触发时
	 * @param {Object} state
	 * @param {Message[]|Message} data
	 * @returns
	 */
	pushCurrentMessageList(state, data) {
		console.log(data);
		// return;
		if(!data) return
		// 还没当前会话，则跳过
		if (Array.isArray(data)) {
			// 筛选出当前会话的消息
			state.currentMessageList = [...state.currentMessageList, ...data]
		} else {
			state.currentMessageList = [...state.currentMessageList, data]
		}
		console.log('1111')
		console.log( state.currentMessageList)
	},
	/**
	 * 滑到顶部请求更多的历史消息
	 * */
	unshiftCurrentMessageList(state,data){
		console.log(data)
		if(data){
			state.currentMessageList = [...data,...state.currentMessageList]
		}
	},
},
actions: {
	getinit({state}){
		console.log(state)
		init().then(res=>{
			// console.log(res)
			if(res.code == 200001){
				state.ImgUrl = res.data.oss_url+'/'
			}
		})
	}
},
});

export default store;
